<?php
/**
 * Descripción de "foros.php":
 * Objeto que carga los foros de la base de datos.
 *
 * @author peregrina
 */

class temas extends comun{
    
    function __construct($from, $tipo, $id) {
        parent::__construct($from, $tipo, $id);
    }
    
    //Tenemos el TID
    function id_definido(){
        //Hacemos el query MBDD_JOIN
        $res = $this->bdd->query("select t.*, f.Nombre 'Foro', u.Nombre 'Nombre_autor' from Temas t join Foros f on t.FID=f.FID join Usuarios u on t.Autor=u.UID where TID ='$this->id';");
        if(!isset($res)){
            //ID no encontrado
            $GLOBALS["HTTP_Status"] = "404";
            $this->HTML["titulo"] = "Tema no encontrado";
            $this->HTML["cuerpo"] .= "<h1>". $this->HTML["titulo"] ."</h1>\n<p>El tema no existe.</p>";
        }
        else{
            //ID encontrado
                //Insertar comentario
                $contenido = (!empty($_POST["contenido"]))? $this->bdd->mysqli->real_escape_string($_POST["contenido"]):"";
                $autor = (isset($_COOKIE["Autor"]))?$this->bdd->mysqli->real_escape_string($_COOKIE["Autor"]):"";
                
            
            $bdd = new basededatos();
            if(!empty($_POST["comentar"]) && !empty($_POST["contenido"])){
                //Nuevo query
                $bdd->insert("insert into Comentarios values ( NULL, {$this->id}, Buscar_UID('$autor'), NULL, '$contenido');");
            }
            if(!empty($_POST["borrar"])){
                //Borrar comentario
                $bdd->insert("delete from Comentarios where CID={$_POST["CID"]};");
            }
            
            //Seguir con la construcción del sitio
            $this->HTML["titulo"] = "Temas: {$res["Nombre"]}";
            //Aquí se muestra el contenido del tema.
            $editar = "";
            if($GLOBALS["aut"]>1){
                $editar .= "<input type='button' value='Editar' onclick=\"post('?tid=crear',{editar:'{$res["TID"]}',fid:'{$res["FID"]}'});\"/>";
            }
            $fecha = strftime("%A, %e de %B de %Y", strtotime($res["FechaHora_creacion"]));
            $this->HTML["cuerpo"] .= <<<END
                <h1><a href='?fid={$res["FID"]}'>{$res["Foro"]}:</a> {$res["Nombre"]}$editar</h1>
                    <info>Creado por {$res["Nombre_autor"]} el $fecha (Última modificación: {$res["FechaHora_edicion"]})</info><br /><br />
                    <p>{$res["Contenido"]}</p>                        
END;
            //Forma para dejar comentarios
            if($GLOBALS["aut"]>0){
                $this->HTML["cuerpo"] .= <<<FORMA
   <hr />
                Comentarios:
                <form action='?tid={$this->id}' method='post'>
                    <textarea name='contenido' class='veinte' id='comentario'></textarea><br />
                    <input type='submit' name='comentar' value='Comentar' class='veinte'/>
                </form>
FORMA;
                
            }
            
            //Comentarios MBDD_JOIN
            $resa = $this->bdd->multiquery("select c.CID, u.Nombre Autor, c.FechaHora, c.Contenido from Comentarios c join Usuarios u on c.Autor=u.UID where c.TID='{$this->id}' order by c.CID desc;");
            //Se crea un objeto $comentario1, $comentario2....
            $x=0;
            //Si tiene comentarios hay que hacer un foreach
            if(!empty($resa)){
                foreach($resa as $res){
                    $comentario{$x} = new comentarios(); 
                    $fecha = strftime("%A, %e de %B de %Y", strtotime($res["FechaHora"]));
                    $this->HTML["cuerpo"] .= $comentario{$x++}->mostrar($this->id,$res["CID"],$res["Autor"],$fecha, $res["Contenido"]);
                }
            }
        }
    }
    
    //No tenemos el TID
    function id_no_definido(){
        //Necesitamos el ID, por lo tanto regresamos a los foros
        $this->redirect("fid");

    }
    
    //Crear tema
    function crear(){
        $this->HTML["titulo"] = "Crear tema";
        $this->HTML["cuerpo"] .= <<<FIN
   <h1>{$this->HTML["titulo"]}</h1>
        <form method="POST" action="?tid=crear" class="edicion">
        <input type="text" name="nombre" value="Título" class="noventa"><br />
        <select name="fid" class="noventa">
        {$this->fids()}
        </select>
        <textarea name="contenido" id="editor" style="height:80%">Contenido</textarea><br />
        <input type="submit" name="guardando" value="Guardar" class="noventa">
        </form>
FIN;
    }
    
    //Editar
    function editar(){
        //Variables
        $id = $this->bdd->mysqli->real_escape_string($_POST["editar"]);
        //Obtener información
        $res = $this->bdd->query("select * from Temas where TID = '$id';");
        
        $this->HTML["titulo"] = "Editando tema";
        $this->HTML["cuerpo"] .= <<<FIN
   <h1>{$this->HTML["titulo"]}</h1>
        <form method="POST" action="?tid=crear" class="edicion">
        <input type="text" name="nombre" value="{$res["Nombre"]}" class="noventa"><br />
        <select name="fid" class="noventa" disabled="disabled">
        {$this->fids($res["FID"])}
        </select>
        <textarea name="contenido" id="editor" style="height:80%">{$res["Contenido"]}</textarea><br />
        <input type="hidden" name="editar" value="{$res["TID"]}"/>
        <input type="submit" name="guardando" value="Guardar">
        <input type="button" value="Borrar" onclick="post('?tid=borrar',{editar:'{$res["TID"]}',fid:'{$res["FID"]}'});"/>
        </form>
FIN;
        
    }
    
    //Guardar
    function guardar(){
        //Variables
        $nombre = $this->bdd->mysqli->real_escape_string($_POST["nombre"]);
        $contenido = $this->bdd->mysqli->real_escape_string($_POST["contenido"]);
        $autor = $this->bdd->mysqli->real_escape_string($_COOKIE["Autor"]);
        $id = (isset($_POST["editar"]))?$this->bdd->mysqli->real_escape_string($_POST["editar"]):"";
        $fid = $this->bdd->mysqli->real_escape_string($_POST["fid"]);
        
        //Crear
        if(empty($_POST["editar"])){
            //Inserción
            $ins = new basededatos();
            $ins->insert("insert into Temas values (NULL, '$fid', '$nombre', '$contenido', Buscar_UID('$autor'), NULL, NULL);");
            //Obtener el número de ID
            $res = $this->bdd->query("select TID from Temas where Autor=Buscar_UID('$autor') order by TID desc limit 1;");
            $id = $res["TID"];
        }
        //Editar
        else{
            //Inserción
            $this->bdd->insert("update Temas set Nombre='$nombre', Contenido='$contenido' where TID='$id';"); 
        }
        
        //Retornar a la página
        $this->redirect("tid=$id");
    }
    
    
    //
    
    //Sacar los foros
    function fids($selected=NULL){
        //Sacamos una lista de FIDs para enlistarlos en un dropdown box
        $res = $this->bdd->multiquery("select FID, Nombre from Foros;");
        $fids="";
        foreach($res as $foro){
            $fids .= "<option value='{$foro["FID"]}'";
            //Si tenemos uno preseleccionado
            if(!empty($selected)){
                $fids .= " selected='selected'";
            }
            $fids .= ">{$foro["Nombre"]}</option>";
        }
        return $fids;
    }
    
    //Borrar, aquí no queremos ir a la pagina principal de temas, pero al foro original
    function borrar($from, $tipo, $id){
        //Borramos la página
        $this->bdd->insert("call Borrar_tema({$_POST["editar"]});");
        //Retornar al indice
        $this->redirect("fid={$_POST["fid"]}");
    }
}

?>
